import { IContext } from '@/core';
/**
 * 实体服务注册中心
 * 基于template/src/register/entity-service-register.ts.hbs生成
 *
 * @export
 * @class EntityServiceRegister
 */
export class EntityServiceRegister {

	/**
	 * 实体服务注册中心对象
	 *
	 * @private
	 * @static
	 * @type {EntityServiceRegister}
	 * @memberof EntityServiceRegister
	 */
	private static register: EntityServiceRegister;

	/**
	 * Creates an instance of EntityServiceRegister.
	 * 禁止使用new获取实体服务注册中心对象
	 * @memberof EntityServiceRegister
	 */
	private constructor() {}

	/**
	 * 获取实体服务注册中心对象
	 *
	 * @static
	 * @return {*}  {EntityServiceRegister}
	 * @memberof EntityServiceRegister
	 */
	static getInstance(): EntityServiceRegister {
		if (!this.register) {
			this.register = new EntityServiceRegister();
		}
		return this.register;
	}

	/**
	 * 获取实体服务
	 *
	 * @param {string} name 实体名称
	 * @param {IContext} [context={}] 应用上下文
	 * @return {*}  {Promise<any>}
	 * @memberof EntityServiceRegister
	 */
	public async getService(name: string, context: IContext = {}): Promise<any> {
		const targetService: any = await (this as any)[`get${name}Service`](context);
		return targetService;
	}

	/**
	 * Third服务
	 *
	 * @param {IContext} [context={}]
	 * @return {*}  {Promise<any>}
	 * @memberof EntityServiceRegister
	 */
	async getThirdService(context: IContext = {}): Promise<any> {
		return (await import ('@/api/third/data-service/third-service')).default.getInstance(context);
	}

	/**
	 * 图书服务
	 *
	 * @param {IContext} [context={}]
	 * @return {*}  {Promise<any>}
	 * @memberof EntityServiceRegister
	 */
	async getIBIZBOOKService(context: IContext = {}): Promise<any> {
		return (await import ('@/api/ibizbook/data-service/ibizbook-service')).default.getInstance(context);
	}

	/**
	 * 部门服务
	 *
	 * @param {IContext} [context={}]
	 * @return {*}  {Promise<any>}
	 * @memberof EntityServiceRegister
	 */
	async getIBIZSample0019Service(context: IContext = {}): Promise<any> {
		return (await import ('@/api/ibiz-sample-0019/data-service/ibiz-sample-0019-service')).default.getInstance(context);
	}

	/**
	 * 商品价格明细服务
	 *
	 * @param {IContext} [context={}]
	 * @return {*}  {Promise<any>}
	 * @memberof EntityServiceRegister
	 */
	async getIBIZSample0009Service(context: IContext = {}): Promise<any> {
		return (await import ('@/api/ibiz-sample-0009/data-service/ibiz-sample-0009-service')).default.getInstance(context);
	}

	/**
	 * 自定义服务
	 *
	 * @param {IContext} [context={}]
	 * @return {*}  {Promise<any>}
	 * @memberof EntityServiceRegister
	 */
	async getIBIZCustomService(context: IContext = {}): Promise<any> {
		return (await import ('@/api/ibiz-custom/data-service/ibiz-custom-service')).default.getInstance(context);
	}

	/**
	 * 硬件服务
	 *
	 * @param {IContext} [context={}]
	 * @return {*}  {Promise<any>}
	 * @memberof EntityServiceRegister
	 */
	async getIBIZHardwareService(context: IContext = {}): Promise<any> {
		return (await import ('@/api/ibiz-hardware/data-service/ibiz-hardware-service')).default.getInstance(context);
	}

	/**
	 * 员工服务
	 *
	 * @param {IContext} [context={}]
	 * @return {*}  {Promise<any>}
	 * @memberof EntityServiceRegister
	 */
	async getIBIZSample0020Service(context: IContext = {}): Promise<any> {
		return (await import ('@/api/ibiz-sample-0020/data-service/ibiz-sample-0020-service')).default.getInstance(context);
	}

	/**
	 * 订单服务
	 *
	 * @param {IContext} [context={}]
	 * @return {*}  {Promise<any>}
	 * @memberof EntityServiceRegister
	 */
	async getIBIZSample0017Service(context: IContext = {}): Promise<any> {
		return (await import ('@/api/ibiz-sample-0017/data-service/ibiz-sample-0017-service')).default.getInstance(context);
	}

	/**
	 * 微组件服务
	 *
	 * @param {IContext} [context={}]
	 * @return {*}  {Promise<any>}
	 * @memberof EntityServiceRegister
	 */
	async getMicroComponentService(context: IContext = {}): Promise<any> {
		return (await import ('@/api/micro-component/data-service/micro-component-service')).default.getInstance(context);
	}

	/**
	 * 订单明细服务
	 *
	 * @param {IContext} [context={}]
	 * @return {*}  {Promise<any>}
	 * @memberof EntityServiceRegister
	 */
	async getIBIZSample0013Service(context: IContext = {}): Promise<any> {
		return (await import ('@/api/ibiz-sample-0013/data-service/ibiz-sample-0013-service')).default.getInstance(context);
	}

	/**
	 * 订单明细服务
	 *
	 * @param {IContext} [context={}]
	 * @return {*}  {Promise<any>}
	 * @memberof EntityServiceRegister
	 */
	async getIBIZOrderDetailService(context: IContext = {}): Promise<any> {
		return (await import ('@/api/ibiz-order-detail/data-service/ibiz-order-detail-service')).default.getInstance(context);
	}

	/**
	 * 示例实体03服务
	 *
	 * @param {IContext} [context={}]
	 * @return {*}  {Promise<any>}
	 * @memberof EntityServiceRegister
	 */
	async getIBIZSample0003Service(context: IContext = {}): Promise<any> {
		return (await import ('@/api/ibiz-sample-0003/data-service/ibiz-sample-0003-service')).default.getInstance(context);
	}

	/**
	 * 订单服务
	 *
	 * @param {IContext} [context={}]
	 * @return {*}  {Promise<any>}
	 * @memberof EntityServiceRegister
	 */
	async getIBIZSample0023Service(context: IContext = {}): Promise<any> {
		return (await import ('@/api/ibiz-sample-0023/data-service/ibiz-sample-0023-service')).default.getInstance(context);
	}

	/**
	 * 嵌套流程（主）服务
	 *
	 * @param {IContext} [context={}]
	 * @return {*}  {Promise<any>}
	 * @memberof EntityServiceRegister
	 */
	async getIBIZSample0006Service(context: IContext = {}): Promise<any> {
		return (await import ('@/api/ibiz-sample-0006/data-service/ibiz-sample-0006-service')).default.getInstance(context);
	}

	/**
	 * 订单服务
	 *
	 * @param {IContext} [context={}]
	 * @return {*}  {Promise<any>}
	 * @memberof EntityServiceRegister
	 */
	async getIBIZSample0021Service(context: IContext = {}): Promise<any> {
		return (await import ('@/api/ibiz-sample-0021/data-service/ibiz-sample-0021-service')).default.getInstance(context);
	}

	/**
	 * 应用部件服务
	 *
	 * @param {IContext} [context={}]
	 * @return {*}  {Promise<any>}
	 * @memberof EntityServiceRegister
	 */
	async getIBIZAPPCTRLService(context: IContext = {}): Promise<any> {
		return (await import ('@/api/ibizappctrl/data-service/ibizappctrl-service')).default.getInstance(context);
	}

	/**
	 * 软件服务
	 *
	 * @param {IContext} [context={}]
	 * @return {*}  {Promise<any>}
	 * @memberof EntityServiceRegister
	 */
	async getIBIZSoftwareSuitService(context: IContext = {}): Promise<any> {
		return (await import ('@/api/ibiz-software-suit/data-service/ibiz-software-suit-service')).default.getInstance(context);
	}

	/**
	 * avue示例实体04服务
	 *
	 * @param {IContext} [context={}]
	 * @return {*}  {Promise<any>}
	 * @memberof EntityServiceRegister
	 */
	async getAvueChildFourService(context: IContext = {}): Promise<any> {
		return (await import ('@/api/avue-child-four/data-service/avue-child-four-service')).default.getInstance(context);
	}

	/**
	 * 任务团队服务
	 *
	 * @param {IContext} [context={}]
	 * @return {*}  {Promise<any>}
	 * @memberof EntityServiceRegister
	 */
	async getIBIZTASKTEAMService(context: IContext = {}): Promise<any> {
		return (await import ('@/api/ibiztaskteam/data-service/ibiztaskteam-service')).default.getInstance(context);
	}

	/**
	 * 订单服务
	 *
	 * @param {IContext} [context={}]
	 * @return {*}  {Promise<any>}
	 * @memberof EntityServiceRegister
	 */
	async getIBIZSample0012Service(context: IContext = {}): Promise<any> {
		return (await import ('@/api/ibiz-sample-0012/data-service/ibiz-sample-0012-service')).default.getInstance(context);
	}

	/**
	 * Avue示例实体03子实体01服务
	 *
	 * @param {IContext} [context={}]
	 * @return {*}  {Promise<any>}
	 * @memberof EntityServiceRegister
	 */
	async getAVUETHREECHILDONEService(context: IContext = {}): Promise<any> {
		return (await import ('@/api/avuethreechildone/data-service/avuethreechildone-service')).default.getInstance(context);
	}

	/**
	 * avue测试服务
	 *
	 * @param {IContext} [context={}]
	 * @return {*}  {Promise<any>}
	 * @memberof EntityServiceRegister
	 */
	async getAvueTestService(context: IContext = {}): Promise<any> {
		return (await import ('@/api/avue-test/data-service/avue-test-service')).default.getInstance(context);
	}

	/**
	 * avue示例实体01服务
	 *
	 * @param {IContext} [context={}]
	 * @return {*}  {Promise<any>}
	 * @memberof EntityServiceRegister
	 */
	async getAvueChildOneService(context: IContext = {}): Promise<any> {
		return (await import ('@/api/avue-child-one/data-service/avue-child-one-service')).default.getInstance(context);
	}

	/**
	 * 订单类型服务
	 *
	 * @param {IContext} [context={}]
	 * @return {*}  {Promise<any>}
	 * @memberof EntityServiceRegister
	 */
	async getIBIZOrderTypeService(context: IContext = {}): Promise<any> {
		return (await import ('@/api/ibiz-order-type/data-service/ibiz-order-type-service')).default.getInstance(context);
	}

	/**
	 * 多模式流程服务
	 *
	 * @param {IContext} [context={}]
	 * @return {*}  {Promise<any>}
	 * @memberof EntityServiceRegister
	 */
	async getIBIZSample0005Service(context: IContext = {}): Promise<any> {
		return (await import ('@/api/ibiz-sample-0005/data-service/ibiz-sample-0005-service')).default.getInstance(context);
	}

	/**
	 * 编辑器服务
	 *
	 * @param {IContext} [context={}]
	 * @return {*}  {Promise<any>}
	 * @memberof EntityServiceRegister
	 */
	async getIBIZAPPEDITORService(context: IContext = {}): Promise<any> {
		return (await import ('@/api/ibizappeditor/data-service/ibizappeditor-service')).default.getInstance(context);
	}

	/**
	 * 账户服务
	 *
	 * @param {IContext} [context={}]
	 * @return {*}  {Promise<any>}
	 * @memberof EntityServiceRegister
	 */
	async getIBIZAccountService(context: IContext = {}): Promise<any> {
		return (await import ('@/api/ibiz-account/data-service/ibiz-account-service')).default.getInstance(context);
	}

	/**
	 * 订单服务
	 *
	 * @param {IContext} [context={}]
	 * @return {*}  {Promise<any>}
	 * @memberof EntityServiceRegister
	 */
	async getIBIZSample0022Service(context: IContext = {}): Promise<any> {
		return (await import ('@/api/ibiz-sample-0022/data-service/ibiz-sample-0022-service')).default.getInstance(context);
	}

	/**
	 * 订单服务
	 *
	 * @param {IContext} [context={}]
	 * @return {*}  {Promise<any>}
	 * @memberof EntityServiceRegister
	 */
	async getIBIZOrderService(context: IContext = {}): Promise<any> {
		return (await import ('@/api/ibiz-order/data-service/ibiz-order-service')).default.getInstance(context);
	}

	/**
	 * avue示例实体02服务
	 *
	 * @param {IContext} [context={}]
	 * @return {*}  {Promise<any>}
	 * @memberof EntityServiceRegister
	 */
	async getAvueChildTwoService(context: IContext = {}): Promise<any> {
		return (await import ('@/api/avue-child-two/data-service/avue-child-two-service')).default.getInstance(context);
	}

	/**
	 * 示例数据库服务
	 *
	 * @param {IContext} [context={}]
	 * @return {*}  {Promise<any>}
	 * @memberof EntityServiceRegister
	 */
	async getIBIZSampleService(context: IContext = {}): Promise<any> {
		return (await import ('@/api/ibiz-sample/data-service/ibiz-sample-service')).default.getInstance(context);
	}

	/**
	 * 客户服务
	 *
	 * @param {IContext} [context={}]
	 * @return {*}  {Promise<any>}
	 * @memberof EntityServiceRegister
	 */
	async getIBIZCustomerService(context: IContext = {}): Promise<any> {
		return (await import ('@/api/ibiz-customer/data-service/ibiz-customer-service')).default.getInstance(context);
	}

	/**
	 * 客户管理服务
	 *
	 * @param {IContext} [context={}]
	 * @return {*}  {Promise<any>}
	 * @memberof EntityServiceRegister
	 */
	async getIBIZCustomerMGService(context: IContext = {}): Promise<any> {
		return (await import ('@/api/ibiz-customer-mg/data-service/ibiz-customer-mg-service')).default.getInstance(context);
	}

	/**
	 * 员工服务
	 *
	 * @param {IContext} [context={}]
	 * @return {*}  {Promise<any>}
	 * @memberof EntityServiceRegister
	 */
	async getIBIZSample0014Service(context: IContext = {}): Promise<any> {
		return (await import ('@/api/ibiz-sample-0014/data-service/ibiz-sample-0014-service')).default.getInstance(context);
	}

	/**
	 * 团队成员服务
	 *
	 * @param {IContext} [context={}]
	 * @return {*}  {Promise<any>}
	 * @memberof EntityServiceRegister
	 */
	async getTEAMMERBERService(context: IContext = {}): Promise<any> {
		return (await import ('@/api/teammerber/data-service/teammerber-service')).default.getInstance(context);
	}

	/**
	 * 订单服务
	 *
	 * @param {IContext} [context={}]
	 * @return {*}  {Promise<any>}
	 * @memberof EntityServiceRegister
	 */
	async getIBIZSample0010Service(context: IContext = {}): Promise<any> {
		return (await import ('@/api/ibiz-sample-0010/data-service/ibiz-sample-0010-service')).default.getInstance(context);
	}

	/**
	 * avue示例实体03服务
	 *
	 * @param {IContext} [context={}]
	 * @return {*}  {Promise<any>}
	 * @memberof EntityServiceRegister
	 */
	async getAvueChildThreeService(context: IContext = {}): Promise<any> {
		return (await import ('@/api/avue-child-three/data-service/avue-child-three-service')).default.getInstance(context);
	}

	/**
	 * 应用视图服务
	 *
	 * @param {IContext} [context={}]
	 * @return {*}  {Promise<any>}
	 * @memberof EntityServiceRegister
	 */
	async getIBIZAPPVIEWService(context: IContext = {}): Promise<any> {
		return (await import ('@/api/ibizappview/data-service/ibizappview-service')).default.getInstance(context);
	}

	/**
	 * 示例实体18服务
	 *
	 * @param {IContext} [context={}]
	 * @return {*}  {Promise<any>}
	 * @memberof EntityServiceRegister
	 */
	async getIBIZSample0018Service(context: IContext = {}): Promise<any> {
		return (await import ('@/api/ibiz-sample-0018/data-service/ibiz-sample-0018-service')).default.getInstance(context);
	}

	/**
	 * 项目服务
	 *
	 * @param {IContext} [context={}]
	 * @return {*}  {Promise<any>}
	 * @memberof EntityServiceRegister
	 */
	async getIBIZSample0015Service(context: IContext = {}): Promise<any> {
		return (await import ('@/api/ibiz-sample-0015/data-service/ibiz-sample-0015-service')).default.getInstance(context);
	}

	/**
	 * avue示例实体05服务
	 *
	 * @param {IContext} [context={}]
	 * @return {*}  {Promise<any>}
	 * @memberof EntityServiceRegister
	 */
	async getAvueChildFiveService(context: IContext = {}): Promise<any> {
		return (await import ('@/api/avue-child-five/data-service/avue-child-five-service')).default.getInstance(context);
	}

	/**
	 * 示例实体01服务
	 *
	 * @param {IContext} [context={}]
	 * @return {*}  {Promise<any>}
	 * @memberof EntityServiceRegister
	 */
	async getIBIZSample0001Service(context: IContext = {}): Promise<any> {
		return (await import ('@/api/ibiz-sample-0001/data-service/ibiz-sample-0001-service')).default.getInstance(context);
	}

	/**
	 * 客户服务
	 *
	 * @param {IContext} [context={}]
	 * @return {*}  {Promise<any>}
	 * @memberof EntityServiceRegister
	 */
	async getIBIZCustomerIntfService(context: IContext = {}): Promise<any> {
		return (await import ('@/api/ibiz-customer-intf/data-service/ibiz-customer-intf-service')).default.getInstance(context);
	}

	/**
	 * 嵌套流程（子）服务
	 *
	 * @param {IContext} [context={}]
	 * @return {*}  {Promise<any>}
	 * @memberof EntityServiceRegister
	 */
	async getIBIZSample0007Service(context: IContext = {}): Promise<any> {
		return (await import ('@/api/ibiz-sample-0007/data-service/ibiz-sample-0007-service')).default.getInstance(context);
	}

	/**
	 * 多版本流程服务
	 *
	 * @param {IContext} [context={}]
	 * @return {*}  {Promise<any>}
	 * @memberof EntityServiceRegister
	 */
	async getIBIZSample0004Service(context: IContext = {}): Promise<any> {
		return (await import ('@/api/ibiz-sample-0004/data-service/ibiz-sample-0004-service')).default.getInstance(context);
	}

	/**
	 * 自循环流程服务
	 *
	 * @param {IContext} [context={}]
	 * @return {*}  {Promise<any>}
	 * @memberof EntityServiceRegister
	 */
	async getIBIZSample0008Service(context: IContext = {}): Promise<any> {
		return (await import ('@/api/ibiz-sample-0008/data-service/ibiz-sample-0008-service')).default.getInstance(context);
	}

	/**
	 * 扩展编辑器服务
	 *
	 * @param {IContext} [context={}]
	 * @return {*}  {Promise<any>}
	 * @memberof EntityServiceRegister
	 */
	async getIBIZAPPEXTENDEDITORService(context: IContext = {}): Promise<any> {
		return (await import ('@/api/ibizappextendeditor/data-service/ibizappextendeditor-service')).default.getInstance(context);
	}

	/**
	 * 处理器服务
	 *
	 * @param {IContext} [context={}]
	 * @return {*}  {Promise<any>}
	 * @memberof EntityServiceRegister
	 */
	async getIBIZCPUService(context: IContext = {}): Promise<any> {
		return (await import ('@/api/ibizcpu/data-service/ibizcpu-service')).default.getInstance(context);
	}

	/**
	 * 示例实体02服务
	 *
	 * @param {IContext} [context={}]
	 * @return {*}  {Promise<any>}
	 * @memberof EntityServiceRegister
	 */
	async getIBIZSample0002Service(context: IContext = {}): Promise<any> {
		return (await import ('@/api/ibiz-sample-0002/data-service/ibiz-sample-0002-service')).default.getInstance(context);
	}

	/**
	 * 存储服务
	 *
	 * @param {IContext} [context={}]
	 * @return {*}  {Promise<any>}
	 * @memberof EntityServiceRegister
	 */
	async getIBIZStorageService(context: IContext = {}): Promise<any> {
		return (await import ('@/api/ibiz-storage/data-service/ibiz-storage-service')).default.getInstance(context);
	}

	/**
	 * 供货商服务
	 *
	 * @param {IContext} [context={}]
	 * @return {*}  {Promise<any>}
	 * @memberof EntityServiceRegister
	 */
	async getIBIZSupplierService(context: IContext = {}): Promise<any> {
		return (await import ('@/api/ibiz-supplier/data-service/ibiz-supplier-service')).default.getInstance(context);
	}

	/**
	 * 任务服务
	 *
	 * @param {IContext} [context={}]
	 * @return {*}  {Promise<any>}
	 * @memberof EntityServiceRegister
	 */
	async getIBIZTASKService(context: IContext = {}): Promise<any> {
		return (await import ('@/api/ibiztask/data-service/ibiztask-service')).default.getInstance(context);
	}

	/**
	 * 动态数据看板服务
	 *
	 * @param {IContext} [context={}]
	 * @return {*}  {Promise<any>}
	 * @memberof EntityServiceRegister
	 */
	async getDYNADASHBOARDService(context: IContext = {}): Promise<any> {
		return (await import ('@/api/dynadashboard/data-service/dynadashboard-service')).default.getInstance(context);
	}

	/**
	 * 统一产品（索引主实体）服务
	 *
	 * @param {IContext} [context={}]
	 * @return {*}  {Promise<any>}
	 * @memberof EntityServiceRegister
	 */
	async getIBIZUNIProductService(context: IContext = {}): Promise<any> {
		return (await import ('@/api/ibizuni-product/data-service/ibizuni-product-service')).default.getInstance(context);
	}

	/**
	 * 订单明细服务
	 *
	 * @param {IContext} [context={}]
	 * @return {*}  {Promise<any>}
	 * @memberof EntityServiceRegister
	 */
	async getIBIZSample0011Service(context: IContext = {}): Promise<any> {
		return (await import ('@/api/ibiz-sample-0011/data-service/ibiz-sample-0011-service')).default.getInstance(context);
	}

	/**
	 * 项目成员服务
	 *
	 * @param {IContext} [context={}]
	 * @return {*}  {Promise<any>}
	 * @memberof EntityServiceRegister
	 */
	async getIBIZSample0016Service(context: IContext = {}): Promise<any> {
		return (await import ('@/api/ibiz-sample-0016/data-service/ibiz-sample-0016-service')).default.getInstance(context);
	}

}